# 1、编写一个学生方法，产生一堆学生对象（姓名），传入形参控制学生生成数量
"""
def student(a):
    student1 = []
    for i in range(a):
        name =  input("请输入名字，傻逼")
        student1.append(name)
    return student1
print(student(6))
"""
# 2、创建一个方法，用来生成普通人必备的信息：姓名、年龄、住址、身份证号、手机号，随机生成20个写入personinfo.txt里
# 格式：姓名：xxx  年龄：xxx 住址：xxx 身份证号：xxx
"""
def write_info():
    from faker import Faker
    import random
    faker1 = Faker(locale='zh_cn')#支持中国
    for i in range(20):
      with open("personinfo.txt","a",encoding="utf-8")as f:
        f.write("姓名:"+faker1.name()+" "+"年龄"+str(random.randint(20,50))+" "+"地址:"+faker1.address()+" "+"身份证号:"+faker1.ssn(min_age = 18,max_age = 90)+" "+"电话号码:"+faker1.phone_number()+"\n")
"""
# 3、文本 student.txt中包含下面的内容
# zhangshan:30
# lisi:50
# wangwu:60
# lifei:70
# 期望能够统计出其中的内容，以dict的形式保存，例如：
"""
a={} #建立了一个空字典用于收集
with open('student.txt','r',encoding='utf-8') as f:
    for i in f.readlines():#文件每一行数据添加到列表里面去 
        a[i.split(':')[0]] = int(i.split(":")[1].strip())
print(a)
"""
"""
c=['asd',123]
b={}
b[c[0]]=c[1]
print(b)
"""
# 4、给你一个 非空 整数列表 nums ，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。
"""
def a(nums):
    result = 0
    for i in nums:
        result ^= i
    return result
nums = [4,3,2,4,1,2,3]
result = a(nums)
print(result)
# def singleNumber(nums):
#     result = 0
#     for num in nums:
#         result ^= num #^异运算
#     return result
# nums = [4, 3, 2, 4, 1, 2, 3]
# result = singleNumber(nums)
# print(result)
"""
"""
nums=[11,22,33,77,77,44,33,22,11]
for i in nums:
    if nums.count(i) == 1:
        print(i)
"""
# 5、输入：["1","a","b","3","5","8","_"] 想要提取里面得数字，并保存到一个列表中
"""
a = ["1","a","b","3","5","8","_"]
b = []
for i in a:
    if i in "0123456789":
        b.append(i)
print(b)
"""
"""
a = ["1", "a", "b", "3", "5", "8", "_"]
b = []
for i in a:
    try:
        b.append(int(i))
    except:
        pass
print(b)
"""
"""
def get_num(nums:list):
    result = []
    for i in nums:
        if i in "0123456789":
            result.append(i)
    return result
"""
# 6、写函数,函数接收的4个参数分别是:姓名,性别(默认为男),年龄,地址
# 用户通过input输入这4个内容(支持持续输入,Q或q退出),并传递给函数
# 函数接收到这些内容,将其追加到student_msg文件中
"""
def a(name,age,address,sex="男"):
        with open("student_msg","a",encoding="utf-8")as f:
                f.write(name+" "+age+" "+address+" "+sex+" "+"\n")
while True:
        name = input("请输入姓名:")
        if name =="q" or name =="Q":
                break
        sex = input("请输入性别 (默认为男):")
        if sex == "":
                sex ="男"
        age = input("请输入年龄:")
        address = input("请输入地址:")
        a(name, sex,age, address)
"""
# 重点:复习文件操作
#  7、打印功能菜单、添加学生信息、删除学生信息、修改学生信息、显示学生信息、退出系统，并且需要接收用户的输入，在根据输入内容调用相应函数实现相应功能（存入文件），模板图如下。每次对学生管理系统发生改动，要写入改动点到log.txt文本中
"""
student_list = []
def student_system():
    while True:
        print("=============================")
        print("学生管理系统")
        print("1.添加学生信息")
        print("2.删除学生信息")
        print("3.修改学生信息")
        print("4.显示所有学生信息")
        print("0.退出系统")
        fs = input("请输入您要选择的功能")
        if fs == "1":
            student_name = input("请输入您要添加的学生姓名")
            if student_name not in student_list:
                student_list.append(student_name)
                with open('stu.txt','w',encoding='utf-8') as f:
                    for i in student_list:
                        f.write(i+ "\n")
                print(f"您添加的{student_name}学生信息已经录入学生管理系统！")
            else:
                print("您要添加的学生已存在！")
                print("本次添加失败！")
        elif fs == "2":
            student_name = input("请输入您要删除的学生姓名")
            if student_name in student_list:
                student_list.remove(student_name)
                print(f"删除{student_name}学生信息成功！")
                with open('stu.txt','w',encoding='utf-8') as f:
                    f.write(i+ "\n")
            else:
                print("您要删除的学生不存在！")
                print("本次删除失败！")
        elif fs == "3":
            student_old_name = input("请输入您要修改的学生姓名")
            student_new_name = input("请输入新的学生姓名")
            if student_old_name in student_list:
                student_list.remove(student_old_name)
                student_list.append(student_new_name)
                print(f"修改{student_old_name}学生成功！现在的名字为：{student_new_name}")
                with open('stu.txt','w',encoding='utf-8') as f:
                    f.write(i+ "\n")
            else:
                print("您要修改的学生不存在！")
                print("本次修改失败！")
        elif fs == "4":
            print("全部的学生信息为：")
            with open('stu.txt', 'r', encoding='utf-8') as f:
                print(f.read())
        elif fs == "0":
            print("退出学生管理系统！")
            print("欢迎您下次再来！")
            break
"""
# 8、如今的社交软件层出不穷，虽然功能千变万化，但都具有好友管理系统的基本功能，包括添加好友、删除好友、备注好友、展示好友等。下面是一个简单的好友管理系统的功能菜单（存入文件）
# 好友管理系统中有5个功能，每个功能都对应一个序号，用户可根据提示“请输入您的选项”选择序号执行相应的操作，包括：
# 添加好友：用户根据提示“请输入要添加的好友：”输入要添加好友的姓名，添加后会提示“好友添加成功”。
# 删除好友：用户根据提示“请输入删除好友姓名：”输入要删除好友的姓名，删除后提示“删除成功”。
# 备注好友：用户根据提示“请输入要修改的好友姓名：”和“请输入修改后的好友姓名：”分别输入修改前和修改后的好友姓名，修改后会提示“备注成功”。
# 展示好友：若用户还没有添加过好友，提示“好友列表为空”，否则返回每个好友的姓名。
# 退出：关闭好友管理系统。
# 本任务要求编写程序，模拟实现如上所述的好友管理系统。
# 文件读取要使用相对路径，确保在任何的电脑、终端都可以运行
"""
friend_list = []
def friend_system():
    while True:
        print("=============================")
        print("好友管理系统")
        print("1.添加好友")
        print("2.删除好友")
        print("3.修改好友")
        print("4.显示好友")
        print("0.退出系统")
        fs = input("请输入您要选择的功能")
        if fs == "1":
            friend_name = input("请输入您要添加的好友姓名")
            if friend_name not in friend_list:
                friend_list.append(friend_name)
                with open('friend.txt','w',encoding='utf-8') as f:
                    for i in friend_list:
                        f.write(i+ "\n")
                print(f"您添加{friend_name}好友成功！")
            else:
                print("您要添加的好友已存在！")
                print("本次添加失败！")
        elif fs == "2":
            friend_name = input("请输入您要删除的好友姓名")
            if friend_name in friend_list:
                friend_list.remove(friend_name)
                print(f"删除{friend_name}学生信息成功！")
                with open('friend.txt','w',encoding='utf-8') as f:
                    f.write(i+ "\n")
            else:
                print("您要删除的好友不存在！")
                print("本次删除失败！")
        elif fs == "3":
            friend_old_name = input("请输入您要修改的好友姓名")
            friend_new_name = input("请输入新的好友姓名")
            if friend_old_name in friend_list:
                friend_list.remove(friend_old_name)
                friend_list.append(friend_new_name)
                print(f"修改{friend_old_name}好友名字成功！现在的名字为：{friend_new_name}")
                with open('friend.txt','w',encoding='utf-8') as f:
                    f.write(i+ "\n")
            else:
                print("您要修改的好友不存在！")
                print("本次修改失败！")
        elif fs == "4":
            print("全部的好友信息为：")
            with open('friend.txt', 'r', encoding='utf-8') as f:
                print(f.read())
        elif fs == "0":
            print("退出好友管理系统！")
            print("欢迎您下次再来！")
            break
friend_system()
"""